package structures;

import java.io.Serializable;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

//klasa do przesyłania informacji pomiędzy klientem a serwerem
public class InfoPacket implements Serializable{

	/**
	 * 
	 */
	//zmienna do serializacji
	private static final long serialVersionUID = 1L;
	//strona, której dotyczy
	private String _page;
	
	//lista znalezionych linków
	private List<String> _urlList=new LinkedList<String>();
	//lista tasków
	public List<TaskType> _taskList=new LinkedList<TaskType>();
	//lista argumentów do poszczególnych tasków
	public List<Object> _taskArguments=new LinkedList<Object>();

	public InfoPacket()
	{
	}
	
	public InfoPacket(String page)
	{
		this._page = page;
	}
	
	public String getPage() {
		return _page;
	}

	public void setPage(String page) {
		this._page = page;
	}

	public void addTask(TaskType task,Object argument){
		this._taskList.add(task);
		this._taskArguments.add(argument);
	}
	
	public List<TaskType> getTaskList(){
		return this._taskList;
	}
	
	//zwraca argument konkretnego zadania
	public Object getTaskArgument(TaskType task){
		Iterator<Object> iter=this._taskArguments.iterator();
		for(TaskType t : this._taskList){
			Object o=iter.next();
			if (t==task) return o;
		}
		return null;
	}
	
	public List<String> getUrlList() {
		return _urlList;
	}
	public void setUrlList(List<String> urlList) {
		this._urlList = urlList;
	}
	

	
	
}
